package com.athuahua.spzx;

import com.athuahua.spzx.anno.EnableUserTokenFeignInterceptor;
import com.athuahua.spzx.properties.AlipayProperties;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * @Author: huahua
 * @Date: 2024/8/9 0009
 * @Time: 15:14
 * @Description:
 * 支付宝支付服务实现
 * 1.spzx服务调用支付宝服务
 *  1.1 保存支付记录到支付记录表中
 *  1.2 调用支付宝接口，发起支付请求
 *  1.3 调用支付宝接口，返回form表单页面【支付页面】打开支付宝完成支付
 * 2.支付宝服务调spzx服务
 *  2.1 支付成功后，支付宝服务本地接口，配置回调地址，
 *      return_payment_url 支付成功后跳转页面 前端调用的
 *      notify_payment_url 本地接口 更新数据 后端异步调用的
 *
 * 支付宝返回的map数据
 * "trade_status" 交易状态
 * "out_trade_no" 订单编号
 */
@SpringBootApplication
@EnableDiscoveryClient //开启服务发现
@EnableCaching//开启注解驱动的缓存管理
@MapperScan("com.athuahua.spzx.mapper")//标识mapper层
@EnableFeignClients(basePackages = {"com.athuahua.spzx"}) //开启openfeign客户端
@EnableUserTokenFeignInterceptor //feign远程调用传递jwt注解
@EnableConfigurationProperties(value = {AlipayProperties.class})
public class ServicePayMain8515 {
    public static void main(String[] args) {
        SpringApplication.run(ServicePayMain8515.class, args);
    }
}

